package com.tianda.his.modules.system.controller;


import cn.dev33.satoken.stp.StpUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tianda.his.commons.utils.LoginUtils;
import com.tianda.his.commons.vo.AjaxResult;
import com.tianda.his.modules.system.dto.DictDataDto;
import com.tianda.his.modules.system.entity.SysDictData;
import com.tianda.his.modules.system.service.SysDictDataService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Date;
import java.util.List;

/**
 * 数据字典控制器
 */
@RestController
public class SySDictDataController {


    @Autowired
    private SysDictDataService sysDictDataService;

    /**
     * 根据字典类型查询对应的字典
     * @param dictType 字典类型
     * @return
     */
    @GetMapping("/system/dict/data/getDataByType/{dictType}")
    public AjaxResult getDataByType(@PathVariable String dictType){


        List<SysDictData> dictDatas = sysDictDataService.getDictDataByType(dictType);

        return AjaxResult.success(dictDatas);

    }

    /**
     * 新增字典数据
     * @param dictDataDto
     * @return
     */
    @PostMapping("/system/dict/data/addDictData")
    public AjaxResult addDictData(DictDataDto dictDataDto){
        //转换对象
        SysDictData sysDictData = new SysDictData();
        BeanUtils.copyProperties(dictDataDto, sysDictData);
        sysDictData.setCreateTime(new Date());
        sysDictData.setCreateBy(LoginUtils.getLoginUser().getUserName());
        sysDictDataService.save(sysDictData);
        return AjaxResult.success();
    }

    /**
     * 分页查询字典数据
     * @param dictDataDto
     * @return
     */
    @GetMapping("/system/dict/data/listForPage")
    public AjaxResult listForPage(DictDataDto dictDataDto){
        Page<SysDictData> page = sysDictDataService.listForPage(dictDataDto);
        return AjaxResult.success(page.getRecords(),page.getTotal());
    }


}
